package com.itcast.demoone.kotlin



// 1. 定义数据类
// 学生数据类
data class Student(
    val id: Int,  // 学号(不可变)
    var name: String,  // 姓名(可变)
    val age: Int, // 年龄(不可变)
    val className: String, // 班级名称(不可变)
    var score: Int = 60 // 成绩(可变, 带默认值)
)

fun main(){
    val stu1 = Student(1001, "张三", 18, "软件工程")
    val stu2 = Student(1001, "李四", 19, "软件工程")

    // 1. 自动生成了 toString() 方法
    println(stu1)

    // 2. 自动生成了 equals() 方法
    val stu3 = Student(1001, "张三", 18, "软件工程")
    /*println(stu1 == stu2)
    println(stu1 == stu3)*/

    // 3. 自动生成了 hashCode() 方法
    /*println(stu1.hashCode())
    println(stu2.hashCode())*/

    // 4. 自动生成了 copy() 方法
    val stu4 = stu1.copy(name = "王五")
    println(stu4)
    println(stu1 == stu4)

    // 5. 解构声明
    val (id, name, age, className, score) = stu1
    println("id: $id, name: $name, age: $age, className: $className, score: $score")
}
